package com.sm.service;

import java.util.ArrayList;
import java.util.List;

import com.sm.model.Coupon;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.sm.dao.CouponMapper;
import com.sm.vo.CouponNumberVO;

/**
 * 优惠券service
 * @author 60915
 */
@Service
public class CouponService {
	
	@Autowired
	private CouponMapper couponMapper;
	
	/**
	 * 通过用户id和优惠券的状态（1已使用，0未使用，2已过期）查询我的不同状态下的优惠券
	 * @param userId	当前用户id也就是我的id
	 * @param statu	我的优惠券的状态（1已使用，0未使用，2已过期）
	 * @return
	 */
	public List<CouponNumberVO> selectMyCoupon(Integer userId){
		//创建一个集合存放某个状态的所有优惠券的对象
		List<CouponNumberVO> couponNumberVOs = new ArrayList<CouponNumberVO>();
		
		for (int i = 0; i <= 2; i++) {
			//未使用的所有优惠券
			List<Coupon> conpons = couponMapper.selectMyCoupon(userId, i);
			//未使用的优惠券的数量
			int noUseNumber = couponMapper.couponNumber(userId, i);
			//差创建一个对象存放未使用的所有优惠券，以及其数量和状态。
			CouponNumberVO couponNumberVO = new CouponNumberVO(conpons, noUseNumber, i);
			couponNumberVOs.add(couponNumberVO);//将三个对象分别存入集合中。
		}
		
		return couponNumberVOs;
	}
	
	/**
     *	通过用户id查询用户所拥有的优惠券的张数
     * @param userId	用户id
     * @return
     */
    public int couponNumber(@Param("userId")Integer userId) {
    	
    	int statu = 0;//设置用户的优惠券的状态为0也就是未使用的状态
    	
    	//通过用户id和优惠券使用状态查询优惠券张数
		return couponMapper.couponNumber(userId,statu);
    }

}
